1. Field of the Invention
The present invention relates to an apparatus and a method for computing an operational-space physical quantity that is required for controlling the operation of a robot (such as a legged robot) that has a complicated link mechanism and that carries out a task while interacting with the external world and, in particular, to an apparatus and a method for computing an operational-space physical quantity that is required for precisely and flexibly controlling the velocity and the acceleration in accordance with an external force by applying a force control to the operation of a link structure composed of a plurality of linked rigid bodies.
More particularly, the present invention relates to an apparatus and a method for computing an operational-space physical quantity in an operational space that defines a relationship between a force exerted on a link structure driven by a force control system and acceleration, and still more particularly, to an apparatus and a method for computing an operational-space physical quantity that are applicable even when an operational space relates to the positions and orientations of a plurality of points of a structure.
2. Description of the Related Art
Recently, the research and development relating to the structure and the stable walking control of legged mobile robots has been successful, and therefore, a practical application of the legged moving robot is expected to become increasingly widespread. These legged mobile robots are unstable compared with crawler robots, and therefore, it is difficult to control the posture and the waking of the legged mobile robots. However, the legged mobile robots have an advantage in that flexible walking and moving operations (such as operations of moving stairways and riding over an obstacle) can be achieved. For example, a humanoid robot has been proposed that has legs as a moving mechanism and that can generate a stable moving pattern of the transition between an on-the-ground state and an off-the-ground state in real time (refer to, for example, Japanese Unexamined Patent Application Publication No. 2004-167676).
Most of known legged robots include joints driven using a position control, since the position control facilitates the ease of control and the design of system configuration. The position control is basically aimed at keeping the position. Accordingly, the position control is known as a “hard control”. The position control is not suitable for flexibly responding an external force and precisely controlling the velocity and acceleration.
In particular, since a partner-type legged robot carries out a task while physically interacting with a variety of external worlds, the position control is not suitable for the partner-type legged robot by nature. Ideally, it is desirable that the partner-type legged robot is driven by a force control system, although the control rule and the system configuration are complicated.
Here, in the robot control using the force control system, the concept of “operational space” is important. The operational space refers to a space used to describe a relationship between a force acting on a robot and the acceleration generated for the robot. For example, when the joint angle of a robot is subjected to a torque control, not a position control, and the interface between the robot and the environment is defined by a constraint condition, this operational space is essential. Here, examples of the constraint conditions include a constraint condition for self-interference of the robot, a constraint condition involved in an available joint angle, an event indicating that a hand fits an object, and an event indicating that the right and left eyes are horizontally aligned.
In a structure composed of a rigid bodies linked using joints, a vector generated by unifying the values of the joints is called as a generalized variable. This generalized variable is represented using a symbol “q”. By associating the temporal differentiation of the generalized variable q with a physical quantity x using the Jacobian matrix J, the operational space can be defined for the physical quantity x as follows:{dot over (x)}=J{dot over (q)}  (1)
Intuitively, examples of the operational space include the Cartesian coordinate system for carrying out a task, such as the position and orientation of a hand provided on the top end of a manipulator or other end-effectors (refer to, for example, “A unified approach to motion and force control of robot manipulators: The operational space formulation,” IEEE Journal of Robotics and Automation, RA-3(1), pp. 43-53, 1987 (hereinafter referred to as “Non-patent document 1”)).
The operational space, namely, the relationship between the acceleration of a physical quantity x and a force will be described in more detail below. Basically, the operational space is defined as a matrix known as an “inverse operational space inertia matrix”. That is, the inverse operational space inertia matrix is a representation for associating a force with an acceleration and is expressed as a matrix Λ−1 of the following equation:Λ−1=JH−1JT  (2)where H denotes an inertia matrix for the joint space of the entire structure.
The inverse operational space inertia matrix is an important physical quantity that can be applied to many technical fields including force control, force simulation, computer animation, posture editing, and external force estimation. For example, a method has been proposed for generating motions of joints of a human-like link structure by computing a joint acceleration while taking into account a constraint condition involved in forward dynamics or by simultaneously solving an equation of a forward dynamics constraint condition formulated using a force exerted on a link and an inverse operational space inertia matrix representing a relationship between the force and the acceleration caused by the force and an equation of a kinetic constraint condition (refer to, for example, Japanese Unexamined Patent Application Publication No. 2003-231077).
However, in order to compute the inverse operational space inertia matrix using equation (2), a large amount of computation is required. Accordingly, the computation of equation (2) is not suitable for real-time processing.
For example, let N denote the number of degrees of freedom (the number of joints) of the structure in equation (2), then the inertia matrix H has a size of N×N. When the dimension of the operational space x is M, the size of Λ−1 is M×M. If N>M and the computation is performed using equation (2), waste of computational time occurs, as can be easily seen. In particular, when, as for a humanoid robot, the number of joints is more than or equal to 30 (i.e., N≧30), the difference between N and M is noticeable. Accordingly, it is difficult to compute the inverse operational space inertia matrix in real time. In most cases, the number M of operational degrees of freedom is smaller than the number N of degrees of freedom of a robot. Therefore, it is desirable that the inverse operational space inertia matrix Λ−1 can be directly computed without using the inertia matrix H.
To solve the above-described problem, a direct solution of an inverse operational space inertia matrix has been proposed. For example, a method has been proposed in which the block diagonal components and the block non-diagonal components of the inverse operational space inertia matrix Λ−1 are directly computed by means of dynamics calculation using physical quantities known as an acceleration propagator and a force propagator (refer to, for example, “Operational Space Dynamics: Efficient Algorithms for Modeling and Control of Branching Mechanisms,” Proc. of the 2000 IEEE Int. Conf. on Robotics and Automation, pp. 850-856, 2000 (hereinafter referred to as “Non-Patent document 2”)). However, this method can be only applied to the case where one operational space corresponds to the position and orientation of one point of the link structure. For example, for a multi-axis robot shown in FIG. 17, if a force corresponding to an operational space is applied to only a point A shown in the left section of FIG. 17, this method can be applied. However, as shown in the right section of FIG. 17, if forces corresponding to an operational space are applied to more than or equal to two points (such as the relative position and orientation between points B and C), this method cannot be applied.
In the case shown in the right section of FIG. 17, the operational space inertia inverse matrices for the points B and C are computed first. Then, by computing the difference between the two matrices, the inverse operational space inertia matrix for the operational space can be eventually computed. However, waste of computational time occurs. Additionally, when collision between the points B and C of application of force, that is, the interference between the links of a mobile robot (self-interference) is taken into account, the inertia matrix H is essential.
Furthermore, in the force control of a legged mobile robot, the center of gravity and the kinetic momentum of the entire structure should be controlled on the basis of the concept of operational space. In particular, for a biped mobile humanoid robot, in order to perform a balance control, the center of gravity and the kinetic momentum of the whole body are essential factors. When the operational space is defined by the center of gravity and the kinetic momentum, a force corresponding to one operational space is applied on the centers of gravity of all of links, as shown in FIG. 18, which is described in more detail below. In this case, for the reason relating to the above-described self-interference, the method for directly computing the inverse operational space inertia matrix (see Non-Patent document 2) cannot be applied. In addition, even when the computation for forces applied to all of the links is attempted, a considerable amount of computation is required not only for the inverse operational space inertia matrix Λ−1 but also for the Jacobian matrix J. Thus, an enormous computational load is generated.